package com.csi.bumblebee.mapper;

import com.csi.bumblebee.domain.user.Student;
import com.csi.bumblebee.domain.vo.LoginVo;
import com.csi.bumblebee.domain.user.Company;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * company 表
 * @author yeebs
 */
@Mapper
public interface CompanyMapper {

    /**
     * 查询全部公司
     * @return 公司集合
     */
    List<Company> list();

    /**
     *  根据id查询hr账号
     * @param id
     * @return
     */
    Company findById(String id);

    /**
     * 登录
     */
    LoginVo login(Company company);

    /**
     * 置空
     */
    int setQualificationNull(String id);

    /**
     * 注册时判断是否有重复
     */
    String findDuplicate(String userName);

    /**
     * 注册
     */
    int register(Company company);

    /**
     * 申请
     */
    int application(Company company);

    /**
     * 查找单个
     */
    Company findByCompanyId(Company company);

    /**
     * 展示所有在申请的企业
     * @return List<Company>
     */
    List<Company> listApplyCompany();

    /**
     * 后台新增企业
     * @param company 对象
     * @return 影响行数
     */
    int add(Company company);

    /**
     * 后台更新企业基本信息
     * @param company 企业对象
     * @return 影响行数
     */
    int update(Company company);

    /**
     * 从后台删除一个企业
     * @param id 主键
     * @return 影响行数
     */
    int delete(String id);

    /**
     * 企业通过审核
     * @param map map
     * @return 影响行数
     */
    int updatePass(Map<String, Object> map);

    /**
     * 企业审核未通过
     * @param map map
     * @return 影响行数
     */
    int updateNotPass(Map<String, Object> map);

    int accountDestroy(String id);

    /**
     * 更新企业账号状态
     *
     * @param company 更新企业
     * @return 影响行数
     */
    int updateCompany(Company company);


}
